#include"salle.h"


	Salle::Salle(const int& numsalle, const int& capacite): numSalle_(numsalle), capacite_(capacite)
	{
	}
	
	int Salle::getNumSalle() const
	{
		return numSalle_;
	}
	
	int Salle::getCapacite() const
	{
		return capacite_;
	}
	
	void Salle::setCapacite(const int& nCap)
	{
		capacite_ = nCap;
	}
	
	bool Salle::ajoutCreneau(Creneau* cr)
	{
		bool insert = false;
		
		if(creneaux_.empty())insert = true;
		else{
		ensCre::reverse_iterator it = creneaux_.rbegin();
		while(it!=creneaux_.rend() && **it > *cr){

			++it;
		}
        if(((*it)->getHeure()) != (*cr).getHeure())insert = true;/*le creneau suivant peut commencer au moment où l'ancien se termine*/
		}
		if(insert)creneaux_.insert(cr);
		
		return insert;
	}
	
	void Salle::retirerCreneau(Creneau* cr)
	{
		ensCre::iterator it;
		it = creneaux_.find(cr);
		if(it != creneaux_.end())creneaux_.erase(it);
	}
	
	ensCre* Salle::getECre()
	{
		return &creneaux_;
	}
	
	std::ostream& operator<<(std::ostream& os, const Salle& s)
	{
		os << "la salle : " << (s.getNumSalle()) << " à " << (s.getCapacite()) << " place";
		return os;
	}

bool Salle::operator <(const Salle& e) const
{
    return numSalle_ < e.numSalle_;
}

    bool ComparatorSalle::operator ()(const Salle& e1, const Salle& e2)
{
    return e1<e2;
}
